<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<%@taglib prefix="cakin" tagdir="/WEB-INF/tags" %>
<html>
<body>
<!-- guest 标签:用户没有身份验证时显示相应信息，即游客访问信息。-->
<shiro:guest>
    欢迎游客访问，<a href="${pageContext.request.contextPath}/login.jsp">点击登录</a><br/>
</shiro:guest>

<!-- user 标签:用户已经身份验证 / 记住我登录后显示相应的信息。-->
<shiro:user>
    欢迎[<shiro:principal/>]登录，<a href="${pageContext.request.contextPath}/logout">点击退出</a><br/>
</shiro:user>

<!-- authenticated 标签:用户已经身份验证通过，即 Subject.login 登录成功，不是记住我登录的。-->
<shiro:authenticated>
    用户[<shiro:principal/>]已身份验证通过<br/>
</shiro:authenticated>

<!-- notAuthenticated 标签 用户没有身份验证通过，即没有调用 Subject.login 进行登录，包括记住我自动登录的也属于未进行身份验证。-->
<shiro:notAuthenticated>
    未身份验证（包括记住我）<br/>
</shiro:notAuthenticated>

<!-- hasRole 标签: 如果当前 Subject 有角色将显示 body 体内容。-->
<shiro:hasRole name="admin">
    <!--principal 标签: 显示用户身份信息，默认调用 Subject.getPrincipal() 获取，即 Primary Principal。-->
    用户[<shiro:principal/>]拥有角色admin<br/>
</shiro:hasRole>

<!--hasAnyRoles 标签: 如果当前 Subject 有任意一个角色（或的关系）将显示 body 体内容。-->
<shiro:hasAnyRoles name="admin,user">
    用户[<shiro:principal/>]拥有角色admin或user<br/>
</shiro:hasAnyRoles>

<!--lacksRole 标签: 如果当前 Subject 没有角色将显示 body 体内容。-->
<shiro:lacksRole name="abc">
    用户[<shiro:principal/>]没有角色abc<br/>
</shiro:lacksRole>

<!--hasPermission 标签: 如果当前 Subject 有权限将显示 body 体内容。-->
<shiro:hasPermission name="user:create">
    用户[<shiro:principal/>]拥有权限user:create<br/>
</shiro:hasPermission>

<!--lacksPermission 标签: 如果当前 Subject 没有权限将显示 body 体内容。-->
<shiro:lacksPermission name="org:create">
    用户[<shiro:principal/>]没有权限org:create<br/>
</shiro:lacksPermission>

<!--自定义标签库：hasAllRoles：hasAllRoles 表示拥有所有相关的角色-->
<cakin:hasAllRoles name="admin,user">
    用户[<shiro:principal/>]拥有角色admin和user<br/>
</cakin:hasAllRoles>

<!--自定义标签库：hasAllPermissions 表示拥有所有相关的权限-->
<cakin:hasAllPermissions name="user:create,user:update">
    用户[<shiro:principal/>]拥有权限user:create和user:update<br/>
</cakin:hasAllPermissions>

<!--自定义标签库：hasAnyPermissions 表示拥有任意一个相关的权限。-->
<cakin:hasAnyPermissions name="user:create,abc:update">
    用户[<shiro:principal/>]拥有权限user:create或abc:update<br/>
</cakin:hasAnyPermissions>

</body>
</html>
